package _1_goodfirst;

public class _4_Methods 
{
	public static void main(String[]args) 
	{
		printRectangle( 3, 5);
		
		int area = getArea(3 , 5);
		System.out.println(area);
		
		System.out.println(getArea(4, 5));    //先打印return值4 * 5，方法内的再执行语句
		
		int sum1 = add(6, 8);
		System.out.println(sum1);
		
		int sum2 = add(6, 8, 9);
		System.out.println(sum2);
		
		double sum3 = add(6.0, 5.8);
		System.out.println(sum3);
		
	}
	/*方法：可以被重复使用的一段代码
	 * 修饰符 返回值类型 方法名(参数列表){
	 * 		方法体
	 * 		return 返回值;
	 * }
	 * 修饰符：目前固定写成public static
	 * 返回值类型：方法中的代码执行完毕后，返回结果的数据类型。如果没有结果，写void。
	 * 方法名：自己起的名字。
	 * 参数列表：方法中要完成功能所需的数据
	 * 方法体：方法要完成的功能
	 * return：将方法的结果返回
	 * */
	//要求：打印任意行、任意列的*
	public static void printRectangle(int height,int width) 
	{
		for(int i = 0; i < height; i++) 
		{
			for(int j = 0; j < width; j++)
			{
				System.out.print("*");
			}
			System.out.println();
		}
	}
	//有返回值的方法，返回值类型由void改为int，
	public static int getArea(int x,int y) 
	{
		int area = x * y;
		return area;
	}
	//方法的重载：两个方法的方法名相同，参数列表
	//补充：若方法有参，返回值类型也可以是void，但不能有return语句。
	public static int add(int x,int y) //两个整数和的方法
	{
	    System.out.println("语句被执行，方法被调用");
	    return x + y;
	    //System.out.println("语句被执行，方法被调用");    报错了，return语句执行完后面的语句都不能执行
	}
	public static int add(int x,int y,int z)//三个整数和的方法
	{
	    return x + y + z;
	}
	public static double add(double x, double y)//两个浮点数和的方法
	{return x + y;}
	//补充：若方法有参，返回值类型也可以是void，但不能有return语句。
	//public static void add(int x,int y)  
    {/*return x + y;*/}
    //报错了，方法重复，说明返回值类型不参与重载，即一个方法只能有一种返回值类型
}